import Vue from 'vue'
import App from './App.vue'
import router from './router'
import './plugins/element.js'
import '@/assets/fonts/iconfont.css'
import '@/assets/css/global.css'
import ZkTable from 'vue-table-with-tree-grid'
import axios from 'axios'
// 导入富文本编辑器
import VueQuillEditor from 'vue-quill-editor'

import 'quill/dist/quill.core.css' // import styles
import 'quill/dist/quill.snow.css' // for snow theme
import 'quill/dist/quill.bubble.css' // for bubble theme

import NProgess from 'nprogress'
import 'nprogress/nprogress.css'

Vue.use(VueQuillEditor)

Vue.component('tree-table', ZkTable)
// 每次发起请求的时候都会触发request
axios.interceptors.request.use(config => {
  // 发起请求时，即为进度条的开始
  NProgess.start()
  // 为请求头对象，添加token验证的Authorization字段
  config.headers.Authorization = sessionStorage.getItem('token')
  // 最后一步必须返回config
  return config
})
axios.interceptors.response.use(config => {
  // 请求回来的时候，即为进度条的结束(隐藏进度条)
  NProgess.done()
  return config
})
axios.defaults.baseURL = 'http://127.0.0.1:8888/api/private/v1/'
Vue.prototype.$http = axios

// 定义一个全局过滤器
Vue.filter('formatDate', (date) => {
  const dt = new Date(date)
  const y = dt.getFullYear()
  const m = (dt.getMonth() + 1 < 10) ? '0' + (dt.getMonth() + 1) : (dt.getMonth() + 1) + ''
  const d = (dt.getDate() < 10) ? '0' + dt.getDate() : dt.getDate() + ''
  const hh = (dt.getHours() < 10) ? '0' + dt.getHours() : dt.getHours() + ''
  const mm = (dt.getMinutes() < 10) ? '0' + dt.getMinutes() : dt.getMinutes() + ''
  const ss = (dt.getSeconds() + 1 < 10) ? '0' + dt.getSeconds() : dt.getSeconds() + ''
  return `${y}-${m}-${d} ${hh}:${mm}:${ss}`
})
Vue.config.productionTip = false

new Vue({
  router,
  render: h => h(App)
}).$mount('#app')
